Flutter FlutterRenderer
FlutterRenderer
是 Flutter 引擎在 Android 下的 Embedder 中的类。它代表了FlutterEngine
的渲染职责。
FlutterRenderer
与提供的RenderSurface
一起工作,将 Flutter 的像素绘制到 Android 的View
层次结构中。这里的RenderSurface
提供了 Android 的Surface
,FlutterRenderer
在这个Surface
上进行绘制。
FlutterRenderer
管理用于渲染的纹理,并通过JNI将一些Java调用转发到原生的Flutter代码。这意味着FlutterRenderer
是 Java 代码和原生 Flutter 代码之间的桥梁。
FlutterSurfaceView
和FlutterTextureView
是RenderSurface
的实现。这意味着FlutterRenderer
可以与这两种类型的视图一起工作,将Flutter的像素绘制到这些视图上。
渲染管理
在介绍中提到,Android 侧提供 RenderSurface
,FlutterRenderer 向其上进行渲染,即渲染管理,这是 FlutterRenderer 的最核心功能。
isDisplayingFlutterUi
状态作为“当前 Flutter 是否正在渲染”的唯一事实。
启停方法:
- 开始渲染:
startRenderingToSurface()
。 - 停止渲染:
stopRenderingToSurface()
。
纹理管理
createSurfaceTexture
:创建一个由 Flutter Engine 管理的纹理,可在 Flutter 中使用registerSurfaceTexture
:注册纹理,由 Flutter Engine 管理的纹理,可在 Flutter 中使用
两个方法返回值类型均为 SurfaceTextureRegistryEntry
这是 FlutterRenderer 的一层封装。
关于外接纹理基于,基于这里的方法实现。参考资料:
- Flutter 使用Texture实现Android渲染视频_flutter textureview-CSDN博客
- Flutter 外接纹理 - 掘金:该文提供了一种,将相机 Preview 与纹理对接的实现
- 谈一谈Flutter外接纹理-CSDN博客
网络资源
本文作者:Maeiee
版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!
喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!